home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Games Collection 1
/
software vault.zip
/
software vault
/
CDR10
/
SPX20.ZIP
/
SPX_INT.ZIP
/
SPX_VGA.INT
< prev
Wrap
Text File
|
1993-09-14
|
6KB
|
147 lines
Unit spx_vga;
{$O+,X+ }
{ SPX Library Version 2.0 Copyright 1993 Scott D. Ramsay }
Interface
Uses dos,spx_dos,spx_obj,spx_fnc;
const
MaxPages = 8;
WinMinX : integer = 0;
WinMinY : integer = 0;
WinMaxX : integer = 319;
WinMaxY : integer = 199;
NormalPut = 0;
CopyPut = 0;
XORPut = 1;
OrPut = 2;
AndPut = 3;
initproc : pointer = nil;
{ Image loding constants }
img_noerror = 0; { no error }
img_notbmp = 1; { not a win3.0 BMP file }
img_notpcx = 2; { not a 256 color PCX file }
img_errorload = 3; { file not found or open error }
img_errorread = 4; { other disk read error }
img_badcolor = 5; { not a 256 color BMP file }
img_errorsave = 6; { error saving PTR file }
img_erralloc = 7; { memory allocation error }
type
RGBType = record
red,green,blue : byte;
end;
RGBlist = array[0..255] of RGBType;
PtrRec = record
ofs,seg : word;
end;
VidHdrType = record
position,count : word;
end;
cpu_type = (c8086,c80186,c80286,c80286p,
c80386,c80386p,c80486,c80486p,undefined);
Ppt = ^Tpt;
Tpt = object(Tobjs)
x,y : integer;
constructor init(px,py:integer);
end;
Ppoly = ^Tpoly;
Tpoly = object
phead,ptail : plist;
points : integer;
constructor init;
procedure addpoint(px,py:integer);virtual;
function numpoints:integer;virtual;
destructor done;virtual;
end;
var
PrevMode, { previous mode }
crpg : byte; { current page number }
cpu : cpu_type; { current cpu }
scnseg,scnofs : word; { current page address }
pages : array[1..MaxPages] of pointer; { page pointers }
thdmat : set of byte;
vspcnt, { vsp last load count }
maxpage : word; { pages used }
rgb256, { palette for loaded images }
zdc : RGBlist; { all black palette }
YOff : array[0..199] of word; { Row offset table }
procedure MatteVsp(var from,too);
procedure VSinc;
procedure SetDefaultColors;
procedure Switch(var a,b:integer);
procedure Parse(var x,y:integer);
function BuffSize(x,y:integer):word;
function ImageSize(var image):word;
procedure ImageDims(var image;var x,y:integer);
procedure SetPtr(var i:PtrRec;var buff);
function pt(x,y:integer):word;
procedure OpenMode(npages:byte);
function Point(x,y:integer;pg:byte):byte;
procedure Pset(x,y:integer;n:byte);
procedure fPcopy(var from,too);
procedure Pcopy(from,too:byte);
procedure CopyRect(x1,y1,x2,y2:integer;var from,too);
procedure fwCopyRect(x1,y1,x2,y2:integer;var from,too);
procedure SwapRect(x1,y1,x2,y2:integer;from,too:byte);
procedure Line_clip(x1,y1,x2,y2:integer;n:byte);
procedure Line(x1,y1,x2,y2:integer;n:byte);
procedure Bar(x1,y1,x2,y2:integer;n:byte);
procedure Rectangle(x1,y1,x2,y2:integer;n:byte);
procedure Circle(x1,y1,r:integer;n:byte);
procedure Ellipse(xc,yc,a0,b0:integer;c:byte);
procedure ftput(x,y:integer;var buff;center:boolean);
procedure ftput_clip(x,y:integer;var buff;center:boolean);
procedure cls(b:byte);
procedure CloseMode;
procedure fget(x1,y1,x2,y2:integer;var image);
procedure fput(x1,y1:integer;var image;center:boolean);
procedure fput_mask(x1,y1:integer;var image;rmw:byte);
procedure fput_clip(x,y:integer;var buff;center:boolean);
procedure SetPageActive(page:byte);
procedure GetColor(num:byte;var red,green,blue:byte);
procedure SetColor(num,red,green,blue:byte);
procedure fSetColors(var colors);
procedure fGetColors(var colors);
procedure FadeIn(steps:word;var color);
procedure FadeOut(steps:word;var color);
procedure ColorsChange(var color:rgblist;filter:rgbtype);
procedure ColorCycle(var colors:rgblist;start:byte;count:integer;fwd:boolean);
function LoadColors(filename:string;var colors;count:integer):integer;
function SaveColors(filename:string;var colors;count:integer):integer;
procedure Paint(x,y:integer;n:byte);
procedure CopyTo(x1,y1,x2,y2,x,y:integer;var from,too);
function LoadVSP(fn:string;var buff):integer;
function FileVSP(var fil:file;var buff;size:longint):integer;
procedure ScaleVSP(var src,dest;nx,ny:word);
function AnalyzeScreen:byte;
procedure MemWrite(var source,dest;size:word;var off:longint);
procedure MemRead(var source,dest;size:word;var off:longint);
procedure fwput(x1,y1:integer;var image);
procedure moveDW(var source,dest;size:word);
procedure fputDW(x:word;var buff);
procedure PcopyDW(var from,too);
procedure fillDW(var dest;c:word;v:byte);
procedure clsDW(c:byte);
procedure displayer(x,y:integer;var pic,virt;plv:byte);
procedure eraselayer(x,y:integer;bkpage:byte;var pic,virt;plv:byte);
procedure dispvirt(x,y:integer;var pic,virt;plv:byte);
procedure displayer_clip(x,y:integer;var pic,virt;plv:byte);
procedure dispvirt_clip(x,y:integer;var pic,virt;plv:byte);
procedure erasevirt(x,y:integer;var pic,virt;plv:byte);
procedure copyvirt(x,y:integer;var pic,v1,v2;plv:byte);
procedure fhLine(x1,x2,y:integer;c:byte);
procedure FillPoly(offx,offy:integer;poly:Tpoly;c:byte);
procedure DrawPoly(offx,offy:integer;poly:Tpoly;c:byte);
procedure drawptr(var p;merge:boolean;sz:longint);
function loadPTR(fn:string;merge:boolean):integer;
function savePTR(fn:string):integer;